<template>
  <div>
    <router-link to="/index/menuList/add">
      <el-button type="primary">
          <i class="el-icon-circle-plus-outline"></i>添加
      </el-button>
    </router-link>
    <el-table
      :data="tableData"
      style="width: 100%">
      <el-table-column
        prop="id"
        label="用户ID"
        width="180">
      </el-table-column>
      <el-table-column
        prop="title"
        label="标题"
        width="180">
      </el-table-column>
      <el-table-column
        prop="type"
        label="用户名"
        width="180">
      </el-table-column>
      <el-table-column
        prop="icon"
        label="角色名称"
        width="180">
      </el-table-column>
      <el-table-column
        prop="status"
        label="状态">
        <template slot-scope="scope">
          <el-tag type="success" v-if="scope.row.status">已启用</el-tag>
          <el-tag type="danger" v-else>已禁用</el-tag>  
        </template>
      </el-table-column>
      <el-table-column
        label="操作">
        <!-- 点击按钮要传id，所以需要数据，又是一个作用域插槽，数据都在scope.row里面 -->
        <template slot-scope="scope">
          <el-button type="primary" size="mini" icon="el-icon-edit" circle @click="edit(scope.row.id)"></el-button>
          <el-button type="danger" size="mini" icon="el-icon-delete" circle @click="del(scope.row.id)"></el-button>
        </template>
      </el-table-column>
    </el-table>
    <el-pagination
      @size-change="handleSizeChange"
      @current-change="handleCurrentChange"
      :current-page.sync="currentPage"
      :page-size="pageSize"
      layout="prev, pager, next, jumper"
      :total="totalSize">
    </el-pagination>
  </div>
</template>
<script>
import {getCount, getAdminTableData} from '../../http'
export default {
  data() {
    return {
      // 表格中的数据
      tableData: [],
      // 当前页码，默认是1
      currentPage: 1,
      // 总共有几条数据
      totalSize: 1,
      // 每页显示多少条
      pageSize: 1
    }
  },
  created() {
    // 获取数据的总条数
    this.getTotalSize();
  },
  methods: {
    // 获取数据的总条数
    async getTotalSize() {
      // 将数据库中的总条数更新到data中
      this.totalSize = await getCount();
      // 分页完成后，才可以请求表格中的数据
      this.getTableData()
    },
    // 获取table中的数据
    async getTableData() {
      // pageSize:每页显示几条；currentPage当前页码时，就是你想看第几页的数据
      this.tableData = await getAdminTableData(this.pageSize, this.currentPage);
    },
    // 跳转到详情页
    edit(id) {
      // 动态路由
      this.$router.push('/index/menuList/'+id);
    },
    // 删除
    async del(id) {
      let res;
      res = await delMenu(id);
      if(res) {
        this.tableData = await getTableData1();
      }
    },
    // 分页相关1
    handleSizeChange(val) {
      console.log(`每页 ${val} 条`);
    },
    // 分页-页面跳转时的处理
    handleCurrentChange(val) {
      // 获取对应页码的数据
      this.getTableData()
    }
  },
}
</script>
<style lang="">
  
</style>